9.7 PIVSchemaTypes schema

This schema contains the elements common to the PivCardRequest and PivApplicantUpdate schemas.

Copy
<?xml version="1.0"?>
<xs:schema
        xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns:myidbase="http://www.intercede.com/CommonTypes"
        targetNamespace="http://www.intercede.com/MyIDPIVSchema/PivCardRequest"
        xmlns="http://www.intercede.com/MyIDPIVSchema/PivCardRequest"
        elementFormDefault="qualified" attributeFormDefault="qualified"
        >
    <xs:import namespace="http://www.intercede.com/CommonTypes" schemaLocation="MyIDBaseTypes.xsd"/>

    <xs:complexType name="ParametersBlockType">
        <xs:all>
            <xs:element name="SourceID" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="IssueDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
            <xs:element name="GenerateUserDN" type="myidbase:Int1" minOccurs="0" maxOccurs="1"/>
            <xs:element name="ActionOnDuplicate" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="RolesActionOnDuplicate" type="xs:string" minOccurs="1" maxOccurs="1"/>
            <xs:element name="DeleteMissingUsers" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
            <xs:element name="PushToLDAP" type="xs:unsignedInt" minOccurs="1" maxOccurs="1"/>
            <xs:element name="CreateUnknownGroups" type="xs:integer" minOccurs="1" maxOccurs="1"/>
            <xs:element name="AuditAll" type="myidbase:Int1" minOccurs="1" maxOccurs="1"/>
            <xs:element name="DataType" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="CheckImportResponseSchema" type="myidbase:Int1" minOccurs="0" maxOccurs="1"/>
            <xs:element name="SynchronousImport" type="myidbase:Int1" minOccurs="0" maxOccurs="1"/>
            <xs:element name="AllowBioImport" type="myidbase:Int1" minOccurs="0" maxOccurs="1"/>
            <xs:element name="DefaultUserRole" type="xs:string" minOccurs="0" maxOccurs="1"/>
            <xs:element name="DisallowCertificateSuspension" type="myidbase:Int1" minOccurs="0" maxOccurs="1"/>
            <xs:element name="CardRequestThrottling" type="xs:unsignedInt" minOccurs="0" maxOccurs="1"/>
            <xs:element name="ReplaceUnassignedCards" type="myidbase:Int1" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="AgencyAddressBlockType">
        <xs:sequence>
            <xs:element name="Address1" type="myidbase:String40" minOccurs="0"/>
            <xs:element name="Address2" type="myidbase:String40" minOccurs="0"/>
            <xs:element name="City" type="myidbase:String40" minOccurs="1"/>
            <xs:element name="State" type="myidbase:String40" minOccurs="0"/>
            <xs:element name="Zip" type="myidbase:String10" minOccurs="0"/>
            <xs:element name="PhoneNumber" type="myidbase:String30" minOccurs="0"/>
            <xs:element name="Country" type="myidbase:String40" minOccurs="0"/>
            <xs:element name="Email" type="myidbase:String120" minOccurs="0"/>
            <xs:element name="Contact" type="myidbase:String80" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <!-- Complex PIV elements -->
    <xs:complexType name="PersonalBlockType">
        <xs:sequence>
            <xs:element name="FirstName" type="myidbase:NotEmptyString64" minOccurs="1"/>
            <xs:element name="LastName" type="myidbase:NotEmptyString64" minOccurs="1"/>
            <xs:element name="NickName" type="myidbase:String80" minOccurs="0"/>
            <xs:element name="MiddleName" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="Suffix" type="myidbase:String20" minOccurs="0"/>
            <xs:element name="Title" type="myidbase:String20" minOccurs="0"/>
            <xs:element name="Email" type="myidbase:String255" minOccurs="0"/>
            <xs:element name="Fax" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="Cell" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="Phone" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="EmployeeID" type="myidbase:Int50" minOccurs="1"/>
            <xs:element name="Address" minOccurs="0" type="PersonalAddressBlockType" />
            <xs:element name="BirthDate" type="xs:date" minOccurs="0"/>
            <xs:element name="Nationality" type="myidbase:String4" minOccurs="0"/>
            <xs:element name="Citizenship" type="CitizenshipString" minOccurs="0"/>
            <xs:element name="CountryOfBirth" type="myidbase:String2" minOccurs="0"/>
            <xs:element name="PlaceOfBirth" type="myidbase:String2" minOccurs="0"/>
            <xs:element name="ExportRestrictions" type="ExportRestrictionsString" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="CardBlockType">
        <xs:sequence>
            <xs:element name="CardProfile" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="CardExpiryDate" type="xs:date" minOccurs="0"/>
            <xs:element name="Renewal" type="RenewalString" minOccurs="0"/>
            <xs:element name="ImportCard" type="myidbase:TrueFalse" minOccurs="0"/>
            <xs:element name="CardRequestedBy" type="myidbase:String255" minOccurs="0"/>
            <xs:element name="JobLabel" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="Update" type="UpdateCardBlockType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Replacement" type="ReplacementCardBlockType" minOccurs="0"/>
            <xs:element name="Reprovision" type="xs:unsignedByte" minOccurs="0" maxOccurs="1"/>
            <xs:element name="CardLayout" type="myidbase:String50" minOccurs="0" maxOccurs="1" />
            <xs:element name="SerialNumber" type="myidbase:String50" minOccurs="0" maxOccurs="1" />
            <xs:element name="DeviceType" type="myidbase:String50" minOccurs="0" maxOccurs="1" />
            <xs:element name="Container" type="myidbase:String50" minOccurs="0" maxOccurs="1" />
            <xs:element name="Certificate" type="myidbase:StringBase64" minOccurs="0" maxOccurs="1" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="UpdateCardBlockType">
        <xs:sequence>
            <xs:element name="OriginalSerialNumber" type="myidbase:String50" minOccurs="1" maxOccurs="1" />
            <xs:element name="OriginalDeviceType" type="myidbase:String50" minOccurs="1" maxOccurs="1" />
            <xs:element name="StatusMapping" type="xs:int" minOccurs="0" maxOccurs="1"/>
            <xs:element name="RevocationComment" type="myidbase:String255" minOccurs="0" maxOccurs="1"/>
      <xs:element name="ParametersXML" type="JobParameters" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="JobParameters">
    <xs:sequence>
      <xs:element name="ReIssue" type="xs:unsignedInt" maxOccurs="1" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ReplacementCardBlockType">
        <xs:all>
            <xs:element name="OriginalSerialNumber" type="myidbase:String50" minOccurs="1" maxOccurs="1"/>
            <xs:element name="OriginalDeviceType" type="myidbase:String50" minOccurs="1" maxOccurs="1"/>
            <xs:element name="StatusMapping" type="xs:int" minOccurs="0" maxOccurs="1"/>
        </xs:all>
    </xs:complexType>

    <xs:complexType name="PersonalAddressBlockType">
        <xs:sequence>
            <xs:element name="Address1" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="Address2" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="City" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="StateZip" type="myidbase:String50" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="AuthenticationBlockType">
        <xs:sequence>
            <xs:element name="SecurityPhrase" minOccurs="0" maxOccurs="unbounded" >
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Prompt" type="myidbase:NotEmptyString255" minOccurs="1" maxOccurs="1"/>
                        <xs:element name="Answer" type="myidbase:EncryptedData" minOccurs="1" maxOccurs="1"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="AccountBlockType">
        <xs:sequence>
            <xs:element name="DN" type="myidbase:String1024" minOccurs="0"/>
            <xs:element name="AlternateDN" type="myidbase:String1024" minOccurs="0"/>
            <xs:element name="CN" type="myidbase:String255" minOccurs="0"/>
            <xs:element name="OU" type="myidbase:String1024" minOccurs="0"/>
            <xs:element name="UPN" type="myidbase:String255" minOccurs="0"/>
            <xs:element name="SAMAccountName" type="myidbase:String20" minOccurs="0"/>
            <xs:element name="Domain" type="myidbase:String50" minOccurs="0" maxOccurs="1"/>
            <xs:element name="LogonName" type="myidbase:String255" minOccurs="0"/>
            <xs:element name="Roles" minOccurs="0" maxOccurs="1" type="RolesBlockType"/>
            <xs:element name="EntrustProfile" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="MaxRequestExpiryDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
            <xs:element name="UserSID" type="myidbase:String255" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="RolesBlockType">
        <xs:sequence>
            <xs:element name="Role" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Name" type="myidbase:String255" minOccurs="1"/>
                        <xs:element name="Scope" type="RoleScope" minOccurs="0" maxOccurs="1"/>
                        <xs:element name="LogonMechanism" type="RoleLogonMechanism" minOccurs="0" maxOccurs="1"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="PositionBlockType">
        <xs:sequence>
            <xs:element name="EmployeeAssociation" type="Association" minOccurs="0"/>
            <xs:element name="EmployeeAffiliation" type="myidbase:String64" minOccurs="0"/>
            <xs:element name="Rank" type="Rank" minOccurs="0"/>
            <xs:element name="EmergencyRole" type="EmergencyRole" minOccurs="0"/>
            <xs:element name="Privilege" type="myidbase:String50" minOccurs="0"/>
            <xs:element name="ApplicantPosition" type="myidbase:String30" minOccurs="0"/>
            <xs:element name="ExtraInfo" type="myidbase:String80" minOccurs="0"/>
            <xs:element name="EEDEligible" type="EED" minOccurs="0" maxOccurs="1"/>
            <xs:element name="EEDIneligibleMessage" type="myidbase:String255" minOccurs="0" maxOccurs="1"/>
            <xs:element name="DisplayCollectCardMessage" type="ColCardMess" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="BiometryBlockType">
        <xs:sequence>
            <xs:element name="HeightInches" type="myidbase:String8" minOccurs="0"/>
            <xs:element name="WeightLbs" type="myidbase:String8" minOccurs="0"/>
            <xs:element name="Gender" type="Gender" minOccurs="0"/>
            <xs:element name="EyeColor" type="EyeColor" minOccurs="0"/>
            <xs:element name="HairColor" type="HairColor" minOccurs="0"/>
            <xs:element name="Race" type="Race" minOccurs="0"/>
            <xs:element name="BioSample" minOccurs="0" type="BioSampleBlockType"/>
            <xs:element name="Signature" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="EncodedData"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="BioSampleBlockType">
        <xs:all>
            <xs:element name="R_Little" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="R_Ring" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="R_Middle" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="R_Index" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="R_Thumb" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="L_Little" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="L_Ring" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="L_Middle" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="L_Index" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="L_Thumb" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="BioFingerSample"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="EFT" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="EncodedData"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="FaceScan" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="EncodedData"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="IrisScan" minOccurs="0">
                <xs:complexType>
                    <xs:group ref="EncodedData"/>
                </xs:complexType>
            </xs:element>
        </xs:all>
    </xs:complexType>

    <xs:group name="BioFingerSample">
        <xs:sequence>
            <xs:choice>
                <xs:sequence>
                    <xs:group ref="EncodedData"/>
                    <xs:element name="RolledPrint" type="myidbase:YesNo" maxOccurs="1" minOccurs="0"/>
                </xs:sequence>
                <xs:element name="ReasonMissing" type="MissingFingerReason" minOccurs="0" maxOccurs="1"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>

    <xs:group name="EncodedData">
        <xs:sequence>
            <xs:element name="Encoding" type="FileEncoding" maxOccurs="1" minOccurs="1"/>
            <xs:element name="Data" type="myidbase:StringBase64" maxOccurs="1" minOccurs="1"/>
            <xs:element name="DateTaken" type="xs:dateTime" maxOccurs="1" minOccurs="0"/>
            <xs:element name="Source" type="myidbase:String50" maxOccurs="1" minOccurs="0"/>
        </xs:sequence>
    </xs:group>

    <xs:complexType name="IdentityDocumentsBlockType">
        <xs:sequence>
            <xs:element name="IdentityDoc1" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Image">
                            <xs:complexType>
                                <xs:group ref="EncodedData"/>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="Title" type="IDDocName1"/>
                        <xs:element name="IssuedBy" type="myidbase:String80"/>
                        <xs:element name="Number" type="myidbase:String20"/>
                        <xs:element name="Expiry" type="xs:date"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="IdentityDoc2" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Image">
                            <xs:complexType>
                                <xs:group ref="EncodedData"/>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="Title" type="IDDocName2"/>
                        <xs:element name="IssuedBy" type="myidbase:String80"/>
                        <xs:element name="Number" type="myidbase:String20"/>
                        <xs:element name="Expiry" type="xs:date"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="SPF10" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Image">
                            <xs:complexType>
                                <xs:group ref="EncodedData"/>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="Title"/>
                        <xs:element name="IssuedBy"/>
                        <xs:element name="Number"/>
                        <xs:element name="Expiry"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="IDDocName1">
        <xs:restriction base="xs:string">
            <!-- the following items are allowable under FIPS201-2 -->
            <xs:enumeration value="U.S. Passport"/>
            <xs:enumeration value="Foreign Passport"/>
            <xs:enumeration value="Alien Regn Receipt Card"/>
            <xs:enumeration value="Employment Authorization"/>
            <xs:enumeration value="Drivers License"/>
            <xs:enumeration value="U.S. Military Card"/>
            <xs:enumeration value="U.S. Military dependent ID Card"/>
            <xs:enumeration value="PIV Card"/>
            <!-- the following items are legacy items which need to be retained to support existing functionality -->
            <xs:enumeration value="Cert. of U.S. Citizenship"/>
            <xs:enumeration value="Cert. of Naturalization"/>
            <xs:enumeration value="Temporary Card"/>
            <xs:enumeration value="Reentry Permit"/>
            <xs:enumeration value="Refugee Travel Document"/>
            <xs:enumeration value="Photo ID Card"/>
            <xs:enumeration value="School ID Card"/>
            <xs:enumeration value="Voters Regn Card"/>
            <xs:enumeration value="Merchant Mariner Card"/>
            <xs:enumeration value="Native American Tribal"/>
            <xs:enumeration value="Canadian Drivers License"/>
            <xs:enumeration value="School Report"/>
            <xs:enumeration value="Hospital Record"/>
            <xs:enumeration value="Nursery Record"/>
            <xs:enumeration value="U.S. Social Security"/>
            <xs:enumeration value="Cert. of Birth Abroad"/>
            <xs:enumeration value="Birth Certificate"/>
            <xs:enumeration value="U.S. Citizen ID"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="IDDocName2">
        <xs:restriction base="xs:string">
            <!-- the following items are allowable under FIPS201-2 -->
            <xs:enumeration value="U.S. Passport"/>
            <xs:enumeration value="Cert. of U.S. Citizenship"/>
            <xs:enumeration value="Cert. of Naturalization"/>
            <xs:enumeration value="Foreign Passport"/>
            <xs:enumeration value="Alien Regn Receipt Card"/>
            <xs:enumeration value="Temporary Card"/>
            <xs:enumeration value="Reentry Permit"/>
            <xs:enumeration value="Refugee Travel Document"/>
            <xs:enumeration value="Employment Authorization"/>
            <xs:enumeration value="Drivers License"/>
            <xs:enumeration value="Photo ID Card"/>
            <xs:enumeration value="Voters Regn Card"/>
            <xs:enumeration value="U.S. Military Card"/>
            <xs:enumeration value="Merchant Mariner Card"/>
            <xs:enumeration value="Native American Tribal"/>
            <xs:enumeration value="Canadian Drivers License"/>
            <xs:enumeration value="U.S. Social Security"/>
            <xs:enumeration value="Cert. of Birth Abroad"/>
            <xs:enumeration value="Birth Certificate"/>
            <xs:enumeration value="U.S. Citizen ID"/>
            <xs:enumeration value="U.S. Resident Citizen Card (I-179)"/>
            <xs:enumeration value="Employment Auth Card (I-688A)"/>
            <xs:enumeration value="Employment Auth Doc (DHS)"/>
            <xs:enumeration value="Employment Auth Doc (I-688B)"/>
            <!-- the following items are legacy items which need to be retained to support existing functionality -->
            <xs:enumeration value="School ID Card"/>
            <xs:enumeration value="School Report"/>
            <xs:enumeration value="Hospital Record"/>
            <xs:enumeration value="Nursery Record"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="NACIStatusBlockType">
        <xs:sequence>
            <xs:element name="NACCaseNumber" type="xs:unsignedShort" minOccurs="0"/>
            <xs:element name="NACICaseNumber" type="xs:unsignedShort" minOccurs="0"/>
            <xs:element maxOccurs="unbounded" name="Check">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Type" type="myidbase:String20"/>
                        <xs:element name="Status" type="NACState"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="CardIssuanceApproved" type="myidbase:YesNoOneZero" minOccurs="0"/>
            <xs:element name="Comments" type="myidbase:String255" minOccurs="0"/>
            <xs:element name="VettingDate" type="xs:dateTime" minOccurs="0" maxOccurs="1"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ActionsBlockType">
        <xs:sequence>
            <xs:element name="ApplicantAction" type="UserAction" minOccurs="0" maxOccurs="1"/>
            <xs:element name="CertSerialNumber" type="myidbase:String50" minOccurs="0" maxOccurs="1"/>
            <xs:element name="CertPolicyName" type="myidbase:String50" minOccurs="0" maxOccurs="1"/>
            <xs:element name="StatusMappingID" type="xs:unsignedInt" minOccurs="0" maxOccurs="1"/>
            <xs:element name="RevocationComment" type="myidbase:String255" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Device" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DeviceIdentifier" minOccurs="0" maxOccurs="unbounded" type="DeviceIdentifierBlockType"/>
                        <xs:element name="ProcessStatus" type="myidbase:String50" minOccurs="0" maxOccurs="1" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="Job" type="xs:unsignedInt" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="DeviceIdentifierBlockType">
        <xs:sequence>
            <xs:element name="SerialNumber" type="myidbase:String50" minOccurs="1"/>
            <xs:element name="SerialNumberField" type="myidbase:String50" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <!-- simple/base PIV types -->
    <xs:simpleType name="RenewalString">
        <xs:restriction base="xs:string">
            <xs:enumeration value="true"/>
            <xs:enumeration value="false"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="CitizenshipString">
        <xs:restriction base="xs:string">
            <xs:enumeration value="US"/>
            <xs:enumeration value="Non US"/>
            <xs:enumeration value="PR"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ExportRestrictionsString">
        <xs:restriction base="xs:string">
            <xs:enumeration value="EXP"/>
            <xs:enumeration value=""/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="RoleScope">
        <xs:restriction base="xs:string">
            <xs:enumeration value="None"/>
            <xs:enumeration value="Self"/>
            <xs:enumeration value="Department"/>
            <xs:enumeration value="Division"/>
            <xs:enumeration value="All"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="RoleLogonMechanism">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Password"/>
            <xs:enumeration value="Card"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Association">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Employee"/>
            <xs:enumeration value="Civil Worker"/>
            <xs:enumeration value="Executive"/>
            <xs:enumeration value="Uniformed"/>
            <xs:enumeration value="Contractor"/>
            <xs:enumeration value="Affiliate"/>
            <xs:enumeration value="Beneficiary"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Rank">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Civilian"/>
            <xs:enumeration value="E-1"/>
            <xs:enumeration value="E-2"/>
            <xs:enumeration value="E-3"/>
            <xs:enumeration value="E-4"/>
            <xs:enumeration value="E-5"/>
            <xs:enumeration value="E-6"/>
            <xs:enumeration value="E-7"/>
            <xs:enumeration value="E-8"/>
            <xs:enumeration value="E-9"/>
            <xs:enumeration value="ES-1"/>
            <xs:enumeration value="ES-2"/>
            <xs:enumeration value="ES-3"/>
            <xs:enumeration value="ES-4"/>
            <xs:enumeration value="ES-5"/>
            <xs:enumeration value="ES-6"/>
            <xs:enumeration value="GS-1"/>
            <xs:enumeration value="GS-10"/>
            <xs:enumeration value="GS-11"/>
            <xs:enumeration value="GS-12"/>
            <xs:enumeration value="GS-13"/>
            <xs:enumeration value="GS-14"/>
            <xs:enumeration value="GS-15"/>
            <xs:enumeration value="GS-1"/>
            <xs:enumeration value="GS-2"/>
            <xs:enumeration value="GS-3"/>
            <xs:enumeration value="GS-4"/>
            <xs:enumeration value="GS-5"/>
            <xs:enumeration value="GS-6"/>
            <xs:enumeration value="GS-7"/>
            <xs:enumeration value="GS-8"/>
            <xs:enumeration value="GS-9"/>
            <xs:enumeration value="O-10"/>
            <xs:enumeration value="O-11"/>
            <xs:enumeration value="O-1"/>
            <xs:enumeration value="O-2"/>
            <xs:enumeration value="O-3"/>
            <xs:enumeration value="O-4"/>
            <xs:enumeration value="O-5"/>
            <xs:enumeration value="O-6"/>
            <xs:enumeration value="O-7"/>
            <xs:enumeration value="O-8"/>
            <xs:enumeration value="O-9"/>
            <xs:enumeration value="W-1"/>
            <xs:enumeration value="W-2"/>
            <xs:enumeration value="W-3"/>
            <xs:enumeration value="W-4"/>
            <xs:enumeration value="W-5"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="EmergencyRole">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Law Enforcement"/>
            <xs:enumeration value="Paramedic"/>
            <xs:enumeration value="Doctor"/>
            <xs:enumeration value="Firefighter"/>
            <xs:enumeration value="Bomb Disposal"/>
            <xs:enumeration value="Biohazard"/>
            <xs:enumeration value="None"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Gender">
        <xs:restriction base="xs:string">
            <xs:enumeration value="F"/>
            <xs:enumeration value="M"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="EyeColor">
        <xs:restriction base="xs:string">
            <xs:enumeration value="BLK"/>
            <xs:enumeration value="BLU"/>
            <xs:enumeration value="BRO"/>
            <xs:enumeration value="GRY"/>
            <xs:enumeration value="GRN"/>
            <xs:enumeration value="HAZ"/>
            <xs:enumeration value="MAR"/>
            <xs:enumeration value="PNK"/>
            <xs:enumeration value="XXX"/>
            <xs:enumeration value="MUL"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="HairColor">
        <xs:restriction base="xs:string">
            <xs:enumeration value="XXX"/>
            <xs:enumeration value="BAL"/>
            <xs:enumeration value="BLK"/>
            <xs:enumeration value="BLN"/>
            <xs:enumeration value="BLU"/>
            <xs:enumeration value="BRO"/>
            <xs:enumeration value="GRY"/>
            <xs:enumeration value="GRN"/>
            <xs:enumeration value="ONG"/>
            <xs:enumeration value="PNK"/>
            <xs:enumeration value="PLE"/>
            <xs:enumeration value="RED"/>
            <xs:enumeration value="SDY"/>
            <xs:enumeration value="STR"/>
            <xs:enumeration value="WHI"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="Race">
        <xs:restriction base="xs:string">
            <xs:enumeration value="A"/>
            <xs:enumeration value="B"/>
            <xs:enumeration value="I"/>
            <xs:enumeration value="W"/>
            <xs:enumeration value="O"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="MissingFingerReason">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Unprintable"/>
            <xs:enumeration value="Amputated"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="NACState">
        <xs:restriction base="xs:string">
            <xs:enumeration value="NR"/>
            <xs:enumeration value="WR"/>
            <xs:enumeration value="AS"/>
            <xs:enumeration value="AP"/>
            <xs:enumeration value="RJ"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="UserAction">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Disable"/>
            <xs:enumeration value="Remove"/>
            <xs:enumeration value="CancelDevices"/>
            <xs:enumeration value="CancelDevice"/>
            <xs:enumeration value="CancelJob"/>
            <xs:enumeration value="CancelAllJobs"/>
            <xs:enumeration value="RenewCertificate"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="FileEncoding">
        <xs:restriction base="xs:string">
            <xs:enumeration value="jpg"/>
            <xs:enumeration value="gif"/>
            <xs:enumeration value="png"/>
            <xs:enumeration value="bmp"/>
            <xs:enumeration value="378"/>
            <xs:enumeration value="385"/>
            <xs:enumeration value="19794"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="ApplicantStatus">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Sponsored"/>
            <xs:enumeration value="EnrollmentBegun"/>
            <xs:enumeration value="EnrollmentComplete"/>
            <xs:enumeration value="Vetting"/>
            <xs:enumeration value="Escalated"/>
            <xs:enumeration value="Approved"/>
            <xs:enumeration value="CardRequested"/>
            <xs:enumeration value="CardActivated"/>
            <xs:enumeration value="Rejected"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="AgencyCategory">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Federal"/>
            <xs:enumeration value="State"/>
            <xs:enumeration value="Commercial"/>
            <xs:enumeration value="Foreign"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="AgencyType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Agency"/>
            <xs:enumeration value="State"/>
            <xs:enumeration value="Company"/>
            <xs:enumeration value="Country"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="AdminGroupsBlockType">
        <xs:sequence>
            <xs:element name="AdminGroup" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Name" minOccurs="1" type="myidbase:String100" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <!-- Custom simple PIV Types -->
    <xs:simpleType name="EED">
        <xs:restriction base="xs:string">
            <xs:enumeration value="0"/>
            <xs:enumeration value="1"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ColCardMess">
        <xs:restriction base="xs:string">
            <xs:enumeration value="0"/>
            <xs:enumeration value="1"/>
        </xs:restriction>
    </xs:simpleType>
</xs:schema>